/**
 * 
 */
package com.ideeli.webextractor.domain;

import java.util.List;
import java.util.Map;

import com.ideeli.webextractor.utils.Utility;

/**
 * @author sa
 *
 */
public class ProductDetail
{
	private String sku;
	private String vpn;
	private String productName; 
	private String vendor;
	
	private String categoryTable;//not used
	private String category;
	private String subCategory;
	private String productType;
	
	private String productDetailImage;
	private String yourPrice;
	private boolean inStock;
	
	private String smallImage;
	private String largeImage;
	
	private String productInformation;
	private Map<String,String> baseProps;
	
	private Map<String,String> extPropMap;
//	private Map<String,List<String>> extPropMapMultiVal;//not used
	private List<String> extPropList;
	
//	private Map<String,Map<String,String>> extendedProps;//not used
	
	private String extendedSpec;
	
	private String extendedSpecHtml;
	
	private String basicSpecHtml;
	
	private int productId;
	
	private String supplier;
	

	
	/**
	 * @return the productId
	 */
	public int getProductId() {
		return productId;
	}
	/**
	 * @param productId the productId to set
	 */
	public void setProductId(int productId) {
		this.productId = productId;
	}
	public String getBasicSpecHtml() {
		
		if(Utility.isNull(basicSpecHtml))
			return "Please refer to the manufacturer's website for the detail.";
		
		return basicSpecHtml;
	}
	public void setBasicSpecHtml(String basicSpecHtml) {
		this.basicSpecHtml = basicSpecHtml;
	}
	public String getCategory()
	{
		return category;
	}
	public void setCategory(String category)
	{
		this.category = category;
	}
	public String getSubCategory()
	{
		return subCategory;
	}
	public void setSubCategory(String subCategory)
	{
		this.subCategory = subCategory;
	}
	public String getProductType()
	{
		return productType;
	}
	public void setProductType(String productType)
	{
		this.productType = productType;
	}
	public String getSku()
	{
		return sku;
	}
	public void setSku(String sku)
	{
		this.sku = sku;
	}
	public String getVpn()
	{
		return vpn;
	}
	public void setVpn(String vpn)
	{
		this.vpn = vpn;
	}
	public String getProductName()
	{
		return productName;
	}
	public void setProductName(String productName)
	{
		this.productName = productName;
	}
	public String getVendor()
	{
		return vendor;
	}
	public void setVendor(String vendor)
	{
		this.vendor = vendor;
	}
	public String getCategoryTable()
	{
		return categoryTable;
	}
	public void setCategoryTable(String categoryTable)
	{
		this.categoryTable = categoryTable;
	}
	public String getProductDetailImage()
	{
		return productDetailImage;
	}
	public void setProductDetailImage(String productDetailImage)
	{
		this.productDetailImage = productDetailImage;
	}
	public String getYourPrice()
	{
		return yourPrice;
	}
	public void setYourPrice(String yourPrice)
	{
		this.yourPrice = yourPrice;
	}
	public boolean IsInStock()
	{
		return inStock;
	}
	public void setInStock(boolean inStock)
	{
		this.inStock = inStock;
	}
	public String getProductInformation()
	{
		return productInformation;
	}
	public void setProductInformation(String productInformation)
	{
		this.productInformation = productInformation;
	}
	public String getExtendedSpec()
	{
		if(Utility.isNull(extendedSpec))
			return "Please refer to the manufacturer's website for the detail.";

		return extendedSpec;
	}
	public void setExtendedSpec(String extendedSpec)
	{
		this.extendedSpec = extendedSpec;
	}
	public Map<String, String> getBaseProps()
	{
		return baseProps;
	}
	public void setBaseProps(Map<String, String> baseProps)
	{
		this.baseProps = baseProps;
	}
	public boolean isInStock()
	{
		return inStock;
	}
	public Map<String, String> getExtPropMap()
	{
		return extPropMap;
	}
	public void setExtPropMap(Map<String, String> extPropMap)
	{
		this.extPropMap = extPropMap;
	}
	public List<String> getExtPropList()
	{
		return extPropList;
	}
	public void setExtPropList(List<String> extPropList)
	{
		this.extPropList = extPropList;
	}
	/* (non-Javadoc)
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString()
	{
		return "ProductDetail [" + (sku != null ? "sku=" + sku + ", " : "") + (vpn != null ? "vpn=" + vpn + ", " : "")
				+ (productName != null ? "productName=" + productName + ", " : "") + (vendor != null ? "vendor=" + vendor + ", " : "")
				+ (categoryTable != null ? "categoryTable=" + categoryTable + ", " : "") + (category != null ? "category=" + category + ", " : "")
				+ (subCategory != null ? "subCategory=" + subCategory + ", " : "") + (productType != null ? "productType=" + productType + ", " : "")
				+ (productDetailImage != null ? "productDetailImage=" + productDetailImage + ", " : "")
				+ (yourPrice != null ? "yourPrice=" + yourPrice + ", " : "") + "inStock=" + inStock + ", "
				+ (productInformation != null ? "productInformation=" + productInformation + ", " : "")
				+ (baseProps != null ? "baseProps=" + baseProps + ", " : "") + (extPropMap != null ? "extPropMap=" + extPropMap + ", " : "")
				+ (extPropList != null ? "extPropList=" + extPropList + ", " : "")
				+ (extendedSpec != null ? "extendedSpec=" + extendedSpec : "") + "]";
	}
	public String getSmallImage()
	{
		return smallImage;
	}
	public void setSmallImage(String smallImage)
	{
		this.smallImage = smallImage;
	}
	public String getLargeImage()
	{
		return largeImage;
	}
	public void setLargeImage(String largeImage)
	{
		this.largeImage = largeImage;
	}
	public String getExtendedSpecHtml()
	{
		return extendedSpecHtml;
	}
	public void setExtendedSpecHtml(String extendedSpecHtml)
	{
		this.extendedSpecHtml = extendedSpecHtml;
	}
	public String getSupplier() {
		return supplier;
	}
	public void setSupplier(String supplier) {
		this.supplier = supplier;
	}

}
